package com.sr.service;

import com.sr.ibase.IBaseService;
import com.sr.pojo.SysUser;
import com.sr.vo.req.UserOwnRoleReqVo;
import com.sr.vo.req.UserPasswordReqVo;
import com.sr.vo.req.UserReqVo;
import com.sr.vo.resp.UserOwnRoleRespVo;
import com.sr.vo.resp.UserRespVo;

import java.util.List;

/**
 * @author xiaochi
 * @date 2022/5/2 21:00
 * @desc IUserService
 */
public interface IUserService extends IBaseService<SysUser> {

    /**
     * 根据用户名查询用户
     * @param username
     * @return
     */
    SysUser getUserByUserName(String username);

    /**
     * 查询用户拥有的角色数据接口
     * @param userId
     * @return
     */
    UserOwnRoleRespVo getUserOwnRole(String userId);

    /**
     * 更新用户角色
     * @param reqVo
     * @return
     */
    int setUserOwnRole(UserOwnRoleReqVo reqVo);

    /**
     * 重置密码
     * @param userId
     * @return
     */
    int resetUpdatePassword(String userId);

    /**
     * 更新用户
     * @param reqVo
     * @param userId
     * @return
     */
    int updateUserInfo(UserReqVo reqVo, String userId);

    /**
     * 批量/删除用户
     * @param ids
     * @param userId
     * @return
     */
    int deletedUsers(List<String> ids, String userId);

    /**
     * 用户详情
     * @param userId
     * @return
     */
    UserRespVo detailInfo(String userId);

    /**
     * 保存个人信息
     * @param reqVo
     * @param userId
     * @return
     */
    int userUpdateDetailInfo(SysUser reqVo, String userId);

    /**
     * 修改个人密码
     * @param reqVo
     * @param userId
     * @return
     */
    int userUpdatePassword(UserPasswordReqVo reqVo, String userId);
}
